import { get, post, put } from '@/utils/request'

export default class DiscussPost {
  /**
   * 获取帖子
   * @param {int} current 当前页码
   * @param {int} limit 每页条数
   * @param {int} orderMode 排序模式，0 最新 1 热门
   * @returns
   */
  static async getDiscussPosts(current = 1, limit = 5, orderMode = 0) {
    return get('/index', {
      current,
      limit,
      orderMode
    })
  }

  /**
   * 获取帖子总数量
   * @returns
   */
  static async getTotal() {
    return get('/index/count')
  }

  /**
   * 新增帖子
   * @param {string} title 标题
   * @param {string} content 内容
   * @returns
   */
  static async addDiscussPost(title, content) {
    return post('/discuss/add', {
      title,
      content
    })
  }

  /**
   * 根据id获取帖子详情
   * @param {int} id 帖子id
   * @returns
   */
  static async getDiscussPostDetail(id) {
    return get('/discuss/detail/' + id)
  }

  /**
   * 根据id获取帖子评论
   * @param {int} id 帖子id
   * @param {int} current 当前页码
   * @param {int} limit 每页条数
   * @returns
   */
  static async getComments(id, current = 1, limit = 5) {
    return get('/discuss/detail/' + id + '/comment', {
      current,
      limit
    })
  }

  /**
   * 根据用户id获取帖子
   * @param {int} id 用户id
   * @param {int} current 当前页码
   * @param {int} limit 每页条数
   * @returns
   */
  static async getDiscussPostsById(id, current = 1, limit = 5) {
    return get('/profile/' + id + '/post', {
      current,
      limit
    })
  }

  /**
   * 根据用户id获取帖子数量
   * @param {int} id 用户id
   * @returns
   */
  static async getDiscussPostCount(id) {
    return get('/profile/' + id + '/post/count')
  }

  /**
   * 给帖子置顶
   * @param {int} id 帖子id
   * @returns
   */
  static async setTop(id) {
    return put('/discuss/' + id + '/top')
  }

  /**
   * 给帖子加精
   * @param {int} id 帖子id
   * @returns
   */
  static async setWonderful(id) {
    return put('/discuss/' + id + '/wonderful')
  }

  /**
   * 删除帖子
   * @param {int} id 帖子id
   * @returns
   */
  static async setDelete(id) {
    return put('/discuss/' + id + '/delete')
  }
}
